package com.youlai.boot.core.tenant.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.core.tenant.model.entity.GlobalUser;

import java.util.List;

/**
 * 全局用户服务接口
 *
 * @author haoxr
 * @since 3.0.0
 */
public interface GlobalUserService extends IService<GlobalUser> {

    /**
     * 根据 OpenID 查询用户属于哪些租户
     *
     * @param openId 微信 OpenID
     * @return 用户租户关系列表
     */
    List<GlobalUser> getUserTenantsByOpenId(String openId);

    /**
     * 根据手机号查询用户属于哪些租户
     *
     * @param mobile 手机号
     * @return 用户租户关系列表
     */
    List<GlobalUser> getUserTenantsByMobile(String mobile);

    /**
     * 根据邮箱查询用户属于哪些租户
     *
     * @param email 邮箱
     * @return 用户租户关系列表
     */
    List<GlobalUser> getUserTenantsByEmail(String email);

    /**
     * 获取用户的主账号租户（通过 OpenID）
     *
     * @param openId 微信 OpenID
     * @return 主账号信息
     */
    GlobalUser getPrimaryTenantByOpenId(String openId);

    /**
     * 获取用户的主账号租户（通过手机号）
     *
     * @param mobile 手机号
     * @return 主账号信息
     */
    GlobalUser getPrimaryTenantByMobile(String mobile);

    /**
     * 创建或更新全局用户记录
     *
     * @param openId 微信 OpenID
     * @param unionId 微信 UnionID（可选）
     * @param mobile 手机号
     * @param tenantId 租户ID
     * @param userId 租户数据库中的用户ID
     * @param username 用户名
     * @param nickname 昵称
     * @return 是否成功
     */
    boolean createOrUpdateGlobalUser(String openId, String unionId, String mobile, Long tenantId, Long userId, String username, String nickname);
}

